/**
 * 
 */
package fr.toussna.entity;

import java.util.List;
/**
 * <b>Cette classe représente les catégories des articles</b>.
 * <p>
 * Elle étend notre classe globale pour le typage des entités {@link DomainEntity}.
 * Elle a que deux champs: nom de la catégorie, On a rajouté aussi un champ pour la liste de articles appartenant a une catégorie.
 * </p>
 * 
 * @author My
 * @version 2.0
 */
public class Category extends DomainEntity{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1757785878478578L;

	// **********************************
	// * Attributs *
	// **********************************
	/**
	 * Nom de la catégorie
	 * @see Category#setName(String)
	 */
	private String name;
	
	/**
	 *La liste des articles de cette catégorie 
	 *@see Category#setArticles(List)
	 */
	private List<Article> articles;
	
	// **********************************
	// * Constructeurs *
	// **********************************
	
	public Category(long int1, String name){
		super(int1);
		this.name = name;
	}
	
	public Category(String name){
		this.name = name;
	}
	
	public Category(long int1) {
		super(int1);
	}
	
	/**
     * 
     */
    public Category() {
    }
	
	// **********************************
	// * Methodes *
	// **********************************

    /**
	 * Retourne la catégorie et ses propriété sous forme de chaine de  caractères.
	 * @return La catégorie en littérale.
	 */
	public String toString(){
		StringBuffer bf = new StringBuffer();
		bf.append("Category informations \n");
		bf.append("  Name: "+this.getName()+"\n");
		//bf.append("  Articles: "+this.getArticles().toString());
		return bf.toString();
	}
	// **********************************
	// * Getters & Setters *
	// **********************************

	/**
	 * @return le nom de la catégorie
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name 
	 * 				le nom a setter
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return la liste des articles
	 */
	public List<Article> getArticles() {
		return articles;
	}

	/**
	 * @param articles 
	 * 					La liste des articles a setter
	 */
	public void setArticles(List<Article> articles) {
		this.articles = articles;
	}
	
}
